#pragma once

// Log Level

#define LOGL_URGENT			0x01		// must print
#define LOGL_PROCESS		0x02		// for function tracing
#define LOGL_DETAIL			0x04		// for more information
#define LOGL_DEBUG_HIVE		0x08		// Be show hive tree structure
#define LOGL_PATH			0x10
#define LOGL_DELETED		0x20


typedef void (*ODSPROC)(LPCTSTR psz);

void setodscallback(ODSPROC pProc);

void ods(LPCTSTR pszFormat, ...);
void odsnl(LPCTSTR pszFormat, ...);

void ode(LPCTSTR pszFormat, ...);

void vin(int n);
void vin(LPCTSTR psz);
void vin(CStringArray& sa);


void log(SHORT nLevel, LPCWSTR pw, ...);
void log(SHORT nLevel, LPCTSTR pszFormat, ...);

void HexDump(DWORD paddress, DWORD vaddress, DWORD length);

